#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys
import os

# 将Python-Common-Tools添加到Python路径中
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'Python-Common-Tools'))

from com.tools.Data__Utils.data_utils import DataUtils

def test_generate_true_random_float_with_precision():
    """测试生成指定精度的浮点数"""
    print("测试生成指定精度的浮点数:")
    
    # 测试生成3位整数2位小数的数字
    result = DataUtils.generate_true_random_float_with_precision(3, 2)
    print(f"生成3位整数2位小数的数字: {result}")
    assert isinstance(result, float)
    str_result = str(result)
    if '.' in str_result:
        integer_part, decimal_part = str_result.split('.')
        assert len(integer_part) == 3, f"整数部分应该是3位，实际是{len(integer_part)}位: {integer_part}"
        assert len(decimal_part) == 2, f"小数部分应该是2位，实际是{len(decimal_part)}位: {decimal_part}"
    
    # 测试生成1位整数4位小数的数字
    result = DataUtils.generate_true_random_float_with_precision(1, 4)
    print(f"生成1位整数4位小数的数字: {result}")
    assert isinstance(result, float)
    str_result = str(result)
    if '.' in str_result:
        integer_part, decimal_part = str_result.split('.')
        assert len(integer_part) == 1, f"整数部分应该是1位，实际是{len(integer_part)}位: {integer_part}"
        assert len(decimal_part) == 4, f"小数部分应该是4位，实际是{len(decimal_part)}位: {decimal_part}"
    
    # 测试生成5位整数0位小数的数字（即整数）
    result = DataUtils.generate_true_random_float_with_precision(5, 0)
    print(f"生成5位整数0位小数的数字: {result}")
    assert isinstance(result, float)
    str_result = str(result)
    if '.' in str_result:
        integer_part, decimal_part = str_result.split('.')
        assert len(integer_part) == 5, f"整数部分应该是5位，实际是{len(integer_part)}位: {integer_part}"
        assert decimal_part == '0', f"小数部分应该是0，实际是: {decimal_part}"
    
    print("所有测试通过!")

if __name__ == "__main__":
    test_generate_true_random_float_with_precision()